package ar.edu.itba.it.cg.grupo01.api;

import javax.vecmath.Point3d;
import javax.vecmath.Tuple3d;
import javax.vecmath.Vector3d;

/**
 * 
 * Defines ray operations
 * 
 */
public interface Ray {

	/**
	 * checks if a point is contained in the trace of a ray
	 * 
	 * @param point
	 * @return
	 */
	public Boolean contains(Tuple3d point);

	public Point3d getOrigin();

	/**
	 * Returns the direction. Notice that it is ALWAYS normalized
	 * 
	 * @return
	 */
	public Vector3d getDirection();
	
	public Point3d calculatePoint(double scalar);
		
	

}
